第 1 章:提示词链
提示词链模式概述
提示词链(Prompt Chaining),有时也称为管道模式(Pipeline pattern),是利用大型语言模型(LLM)处理复杂任务的强大范式。这种方法不再要求 LLM 在单一的整体化步骤中解决复杂问题,而是采用分而治之的策略:将原本令人却步的问题分解为一系列更小、更易管理的子问题,每个子问题通过专门设计的提示词单独处理,一个提示词的输出会作为输入策略性地传递给链中的下一个提示词。 这种顺序处理技术天然地为与 LLM 的交互引入了模块化和清晰性。通过分解复杂任务,每个单独的步骤都变得更容易理解和调试,使整个过程更加健壮和可解释。链中的每一步都可以精心设计和优化,专注于更大问题的特定方面,从而产生更准确、更聚焦的输出。 一个步骤的输出作为下一个步骤的输入至关重要。这种信息传递建立了依赖链(因此得名),其中先前操作的上下文和结果指导后续处理。这使得 LLM 能够在其先前工作的基础上构建,完善理解,并逐步接近期望的解决方案。 此外,提示词链不仅仅是分解问题;它还支持集成外部知识和工具。在每一步,都可以指示 LLM 与外部系统、API 或数据库交互,从而丰富其内部训练数据之外的知识和能力。这种能力极大地扩展了 LLM 的潜力,使它们不再只是作为独立模型运行,而是成为更广泛、更智能系统的组成部分。 提示词链的重要性超越了简单的问题解决。它是构建复杂 AI 智能体系统的基础技术。这些智能体可以利用提示词链在动态环境中自主规划、推理和行动。通过策略性地构建提示词序列,智能体可以参与需要多步推理、规划和决策的任务。这样的智能体工作流可以更紧密地模拟人类思维过程,从而实现与复杂领域和系统更自然、更有效的交互。 单一提示词的局限性: 对于多维度任务,使用单一的复杂提示词往往效率低下。LLM 可能难以处理多重约束和指令,导致以下问题:- 指令忽略:部分提示内容被忽视
- 上下文偏离:模型失去对初始上下文的追踪
- 错误传播:早期错误被放大
- 上下文窗口不足:模型获取的信息不足以生成响应
- 幻觉:认知负荷增加导致生成错误信息
- 初始提示词(总结):“总结以下市场研究报告的主要发现:[文本]。” 模型的唯一焦点是总结,提高了这一初始步骤的准确性。
- 第二个提示词(趋势识别):“使用摘要,识别前三个新兴趋势并提取支持每个趋势的具体数据点:[步骤 1 的输出]。” 此提示词现在更受约束,并直接建立在经过验证的输出之上。
- 第三个提示词(电子邮件撰写):“向营销团队起草一封简明的电子邮件,概述以下趋势及其支持数据:[步骤 2 的输出]。”
实际应用与用例
提示词链是一种多用途模式,在构建智能体系统时适用于广泛的场景。其核心效用在于将复杂问题分解为顺序的、可管理的步骤。以下是几个实际应用和用例: 1. 信息处理工作流: 许多任务涉及通过多次转换处理原始信息。例如,总结文档、提取关键实体,然后使用这些实体查询数据库或生成报告。提示词链可能如下所示:- 提示词 1:从给定的 URL 或文档中提取文本内容。
- 提示词 2:总结清理后的文本。
- 提示词 3:从摘要或原始文本中提取特定实体(例如,姓名、日期、位置)。
- 提示词 4:使用实体搜索内部知识库。
- 提示词 5:生成包含摘要、实体和搜索结果的最终报告。
- 提示词 1:识别用户查询中的核心子问题(崩盘原因、政府响应)。
- 提示词 2:专门研究或检索有关 1929 年崩盘原因的信息。
- 提示词 3:专门研究或检索有关政府对 1929 年股市崩盘的政策响应的信息。
- 提示词 4:将步骤 2 和 3 的信息综合成对原始查询的连贯答案。
- 提示词 1:尝试从发票文档中提取特定字段(例如,姓名、地址、金额)。
- 处理:检查是否提取了所有必需字段以及它们是否满足格式要求。
- 提示词 2(条件性):如果字段缺失或格式错误,制作新提示词要求模型专门查找缺失/格式错误的信息,可能提供失败尝试的上下文。
- 处理:再次验证结果。如有必要重复。
- 输出:提供提取的、验证的结构化数据。
- 提示词 1:根据用户的一般兴趣生成 5 个主题想法。
- 处理:允许用户选择一个想法或自动选择最佳想法。
- 提示词 2:基于选定的主题,生成详细的大纲。
- 提示词 3:根据大纲中的第一点编写草稿部分。
- 提示词 4:根据大纲中的第二点编写草稿部分,提供前一部分作为上下文。对所有大纲点继续这样做。
- 提示词 5:审查和完善完整草稿的连贯性、语气和语法。
- 提示词 1:处理用户话语 1,识别意图和关键实体。
- 处理:使用意图和实体更新对话状态。
- 提示词 2:基于当前状态,生成响应和/或识别下一个所需的信息片段。
- 对于后续轮次重复,每个新的用户话语启动一个利用累积对话历史(状态)的链。
- 提示词 1:理解用户对代码函数的请求。生成伪代码或大纲。
- 提示词 2:基于大纲编写初始代码草稿。
- 提示词 3:识别代码中的潜在错误或改进领域(可能使用静态分析工具或另一个 LLM 调用)。
- 提示词 4:基于识别的问题重写或完善代码。
- 提示词 5:添加文档或测试用例。
- 提示词 1:从用户的图像请求中提取和理解文本。
- 提示词 2:将提取的图像文本与其相应的标签链接起来。
- 提示词 3:使用表格解释收集的信息以确定所需的输出。
实操代码示例
实现提示词链的范围从脚本中的直接顺序工具调用,到利用专门设计用于管理控制流、状态和组件集成的框架。诸如 LangChain、LangGraph、Crew AI 和 Google 智能体开发工具包(ADK)等框架,提供了用于构建和执行这些多步过程的结构化环境,这对于复杂架构特别有利。 出于演示目的,LangChain 和 LangGraph 是合适的选择,因为它们的核心 API 明确设计用于组合操作链和图。LangChain 为线性序列提供基础抽象,而 LangGraph 扩展了这些能力以支持状态化和循环计算,这对于实现更复杂的智能体行为是必需的。此示例将专注于基础线性序列。 以下代码实现了一个两步提示词链,作为数据处理管道运行。初始阶段旨在解析非结构化文本并提取特定信息。后续阶段然后接收此提取的输出并将其转换为结构化数据格式。 要复制此过程,必须首先安装所需的库。这可以使用以下命令完成:上下文工程和提示工程
上下文工程(见图 1)是在 token 生成之前系统地设计、构建和向 AI 模型提供完整信息环境的学科。这种方法论断言,模型输出的质量较少依赖于模型架构本身,而更多依赖于所提供上下文的丰富性。
图 1:上下文工程是为 AI 构建丰富、全面的信息环境的学科,因为此上下文的质量是实现高级智能体性能的主要因素。
它代表着从传统提示工程的重大演进,传统提示工程主要专注于优化用户即时查询的措辞。上下文工程将这一范围扩展到包括多层信息,例如系统提示词,这是定义 AI 操作参数的基础指令集——例如,“你是一名技术作家;你的语气必须正式且精确”。上下文通过外部数据进一步丰富。这包括检索文档,其中 AI 主动从知识库获取信息以指导其响应,例如提取项目的技术规格。它还整合了工具输出,这是 AI 使用外部 API 获取实时数据的结果,例如查询日历以确定用户的可用性。这些显式数据与关键的隐式数据(如用户身份、交互历史和环境状态)相结合。核心原则是,即使是高级模型,在提供有限或构建不良的操作环境视图时也会表现不佳。
因此,这种实践将任务从仅仅回答问题,重新定义为为智能体系统构建全面的操作图景。例如,上下文工程化的智能体不会仅仅响应查询,而是首先会整合用户的日历可用性(工具输出)、与电子邮件收件人的专业关系(隐式数据)以及之前会议的笔记(检索的文档)。这使得模型能够生成高度相关、个性化和实用的输出。“工程”组件涉及创建健壮的管道以在运行时获取和转换此数据,并建立反馈循环以持续改进上下文质量。
为实现这一点,可以使用专门的调优系统来大规模自动化改进过程。例如,Google Vertex AI 提示优化器等工具可以通过系统化地根据一组样本输入和预定义评估指标评估响应来提升模型性能。这种方法对于在不同模型间适配提示词和系统指令非常有效,无需大量手动重写。通过向这样的优化器提供样本提示、系统指令和模板,它可以可编程式地完善上下文输入,为实现复杂上下文工程所需的反馈循环提供结构化方法。
这种结构化方法是区分基本 AI 工具与更复杂、上下文感知系统的关键。它将上下文本身视为主要组件,对智能体系统知道什么、何时知道以及如何使用该信息给予关键重要性。这种实践确保模型对用户的意图、历史和当前环境有全面的理解。最终,上下文工程是将无状态聊天机器人提升为高度能干、情境感知系统的关键方法论。
一瞥
是什么: 复杂任务在单个提示词内处理时通常会使 LLM 不堪重负,导致严重的性能问题。模型的认知负荷增加了错误的可能性,如忽略指令、失去上下文和生成错误信息。单体提示词难以有效管理多个约束和顺序推理步骤。这导致不可靠和不准确的输出,因为 LLM 未能解决多方面请求的所有方面。 为什么: 提示词链通过将复杂问题分解为一系列较小的、相互关联的子任务来提供标准化解决方案。链中的每一步使用聚焦的提示词执行特定操作,显著提高可靠性和控制力。一个提示词的输出作为下一个提示词的输入传递,创建逐步构建最终解决方案的逻辑工作流。这种模块化的分而治之策略使过程更易于管理、更易于调试,并允许在步骤之间集成外部工具或结构化数据格式。这种模式是开发能够规划、推理和执行复杂工作流的复杂多步智能体系统的基础。 经验法则: 当任务对于单个提示词过于复杂、涉及多个不同的处理阶段、需要在步骤之间与外部工具交互,或者在构建需要执行多步推理并维护状态的智能体系统时,使用此模式。 可视化摘要
图 2:提示词链模式:智能体从用户接收一系列提示词,每个智能体的输出作为链中下一个智能体的输入
关键要点
以下是一些关键要点:- 提示词链将复杂任务分解为一系列较小的、聚焦的步骤。这有时也被称为管道模式。
- 链中的每一步都涉及LLM调用或处理逻辑,使用前一步的输出作为输入。
- 这种模式提高了与语言模型进行复杂交互的可靠性和可管理性。
- LangChain/LangGraph和Google ADK等框架提供了定义、管理和执行这些多步序列的健壮工具。
结论
通过将复杂问题分解为一系列更简单、更易于管理的子任务,提示词链为指导大型语言模型提供了一个健壮的框架。这种”分而治之”策略通过一次专注于一个特定操作,显著提高了输出的可靠性和控制力。作为基础模式,它支持开发能够进行多步推理、工具集成和状态管理的复杂 AI 智能体系统。最终,掌握提示词链对于构建能够执行远超单个提示词能力的复杂工作流的健壮、上下文感知系统至关重要。参考文献
- LangChain Documentation on LCEL: https://python.langchain.com/v0.2/docs/core_modules/expression_language/
- LangGraph Documentation: https://langchain-ai.github.io/langgraph/
- Prompt Engineering Guide - Chaining Prompts: https://www.promptingguide.ai/techniques/chaining
- OpenAI API Documentation (General Prompting Concepts): https://platform.openai.com/docs/guides/gpt/prompting
- Crew AI Documentation (Tasks and Processes): https://docs.crewai.com/
- Google AI for Developers (Prompting Guides): https://cloud.google.com/discover/what-is-prompt-engineering?hl=en
- Vertex Prompt Optimizer https://cloud.google.com/vertex-ai/generative-ai/docs/learn/prompts/prompt-optimizer